<?php
	
	class LoginHandler{
		private $LoggedInSession = "LoggedIn";
		
		// Funktion för att kontrollera om användaren är inloggad
		public function IsLoggedIn()
		{
			if (isset($_SESSION[$this->LoggedInSession])) {
				return TRUE;
			} else{	
				return FALSE;
			}
		}
		
		// Funktion som loggar in användaren
		public function DoLogin($user, $pass){				
			switch ($user) {
				case 'hans':
					if($pass == 'hej'){
						$_SESSION[$this->LoggedInSession] = TRUE;
						return TRUE;
					}
					break;
				case 'kurt';
					if($pass == 'hej'){
						$_SESSION[$this->LoggedInSession] = TRUE;
						return TRUE;
					}			
			  		break;
			}
			return FALSE;
		}
		
		// Funktion som loggar ut användaren
		public function DoLogout()
		{
			if (isset($_SESSION[$this->LoggedInSession])) {
					
				unset($_SESSION[$this->LoggedInSession]);
			}	
			
		}
		
		// Testfunktion
		public function Test()
		{
			$this->DoLogout();
			
			// Kontrollerar om användaren verkligen är utloggad
			if ($this->IsLoggedIn() !== FALSE) {
				echo "Fel. Användaren skall vara utloggad <br/>";
				return FALSE;				
			}
			
			// Testar inloggning med fel användarnamn samt lösenord
			if($this->DoLogin("felanvandarnamn", "felpassword") !== FALSE){
				echo "Fel. Inloggningen skall misslyckas <br/>";
				return FALSE;
			}
			
			// Testar inloggning med rätt användarnamn men fel lösenord
			if($this->DoLogin("hans", "fel") !== FALSE){
				echo "Fel. Inloggningen skall misslyckas <br/>";
				return FALSE;
			}
			
			// Testar inloggning med rätt användarnamn samt lösenord
			if($this->DoLogin("kurt", "hej") !== TRUE){
				echo "Fel. Inloggningen skall lyckas <br/>";
				return FALSE;
			}
			
			// Kontrollerar om användaren nu är inloggad
			if ($this->IsLoggedIn() !== TRUE) {
				echo "Fel. Användaren skall vara inloggad <br/>";
				return FALSE;
			} 
				
			// Loggar ut		
			$this->DoLogout();
			
			// Kontrollerar om användaren nu är utloggad
			if ($this->IsLoggedIn() !== FALSE) {
				echo "Fel. Användaren skall vara utloggad <br/>";
				return FALSE;
			}
			
			// Testar inloggning med rätt användarnamn samt lösenord (annan användare)
			if($this->DoLogin("hans", "hej") !== TRUE){
				echo "Fel. Inloggningen skall lyckas <br/>";
				return FALSE;
			} 
			
			// Kontrollerar om användaren nu är inloggad
			if ($this->IsLoggedIn() !== TRUE) {
				echo "Fel. Användaren skall vara inloggad <br/>";
				return FALSE;
			} 
			
			// Loggar ut		
			$this->DoLogout();
			
			// Kontrollerar om användaren nu är utloggad
			if ($this->IsLoggedIn() !== FALSE) {
				echo "Fel. Användaren skall vara utloggad <br/>";
				return FALSE;
			}
			
			return TRUE;
			
			
			
		}
	}
?>